﻿using Shop.Api.Models;
using Shop.Data.Business;
using Shop.Data.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace Shop.Api.Controllers
{
    public class ClienteController : ApiController
    {
        // GET api/<controller>
        public IEnumerable<ClienteModel> Get()
        {
           // return new string[] { "value1", "value2" };
             return ClienteBusiness.GetListByFilter("").Select(

                 t => new ClienteModel
                 {
                     Id = t.Id,
                     codigo = t.codigo,
                     nombre = t.nombre,
                     apellidopaterno = t.apellidopaterno,
                     apellidomaterno = t.apellidomaterno,
                     ruc = t.ruc,
                     ciudad = t.ciudad,
                     direccion = t.direccion,
                     celular = t.celular,
                 }); 
        }

        // GET api/<controller>/5
        public ClienteModel Get(Guid id)
        {
            //return "asdasdsadsa";  
           Cliente p = ClienteBusiness.GetById(id);
            return new ClienteModel
            {
                Id = p.Id,
                codigo = p.codigo,
                nombre = p.nombre,
                apellidopaterno = p.apellidopaterno,
                apellidomaterno = p.apellidomaterno,
                ruc = p.ruc,
                ciudad = p.ciudad,
                direccion = p.direccion,
                celular = p.celular,
            };
        }

        // POST api/<controller>
        public ClienteModel Post([FromBody]ClienteModel model)
        {
            //return "Mi post";
            Cliente p = ClienteBusiness.Create(new Cliente
            {

                codigo = model.codigo,
                nombre = model.nombre,
                apellidopaterno = model.apellidopaterno,
                apellidomaterno = model.apellidomaterno,
                ruc = model.ruc,
                ciudad = model.ciudad,
                direccion = model.direccion,
                celular = model.celular,
            });
            return new ClienteModel
            {
                Id = p.Id,
                codigo = p.codigo,
                nombre = p.nombre,
                apellidopaterno = p.apellidopaterno,
                apellidomaterno = p.apellidomaterno,
                ruc = p.ruc,
                ciudad = p.ciudad,
                direccion = p.direccion,
                celular = p.celular,

            };
        }

        // PUT api/<controller>/5
        public ClienteModel Put(Guid id, [FromBody]ClienteModel model)
        {
            //return "Mi put";
            Cliente p = ClienteBusiness.Update(new Cliente
            {
                Id = id,
                codigo = model.codigo,
                nombre = model.nombre,
                apellidopaterno = model.apellidopaterno,
                apellidomaterno = model.apellidomaterno,
                ruc = model.ruc,
                ciudad = model.ciudad,
                direccion = model.direccion,
                celular = model.celular,
            });
            return new ClienteModel
            {

                Id = p.Id,
                codigo = p.codigo,
                nombre = p.nombre,
                apellidopaterno = p.apellidopaterno,
                apellidomaterno = p.apellidomaterno,
                ruc = p.ruc,
                ciudad = p.ciudad,
                direccion = p.direccion,
                celular = p.celular,


            };
        }

        // DELETE api/<controller>/5
        public void Delete(Guid id)
        {
            ClienteBusiness.Delete(id);
        }
    }
}